The present invention relates in general to recording and playback of data tracks and digital signals in general, and in one aspect, to recording and playback on disk drives and the like. In another aspect it relates to maximizing the number of audio or video tracks that can be played back from a disk drive.
The disk drive that is ubiquitous in computer data and application storage is also useful in storing audio information for mixing, production and performance of music. Audio tracks from instruments, voice input, and sampled sounds may be digitized and stored on a disk in the same manner that other data is stored. Disk drives are typically formatted to contain a large plurality of concentric digital data tracks which are each divided into multiple sectors, the sectors and data tracks being assigned unique address locations. A computer records data, and retrieves the data by moving one or more read/write heads to address locations corresponding to the data sought. Disk operating systems often record data on an available track sector that is closest to the read/write heads. Moreover, a data may be split up and recorded on many sectors of different digital tracks, in accordance with track availability and proximity to the read/write heads, disk operating system programming, and the like.
When it is desired to play back the audio information, the disk drive read/write head(s) seeks the address locations of the information on the disk drive, reads the digitized audio information from the addressed sectors and digital tracks, and sends it to RAM. In the frequent instances wherein multiple audio tracks must be played simultaneously for polyphonic composition and the like, all of the tracks generally must be loaded into a RAM buffer before playback can proceed. Clearly the seek time of the playback head(s) comprises a significant temporal limitation for the playback system. In addition, the size of the RAM buffer generally comprises an operational limit to the number of tracks that are read into memory before playback proceeds.
As a general rule, 12 Mb of RAM can buffer 64 simultaneous record or playback tracks from a single very fast disk drive. Increasing the amount of RAM does not significantly increase the number of audio tracks that can be played simultaneously, unless the full length of each entire audio track is fully loaded into RAM. This approach can require an enormous amount of RAM, and is not practical due to the large expense involved. For example, a 4 gigabyte hard disk drive can be purchased for as little as $300, which is approximately the same cost as 64 Mb of RAM (at current prices). However, four gigabytes of RAM would cost $3000, or more than 10 times the cost of hard disk storage capacity.
Furthermore, the number of tracks that can be played back from a single disk rive is also determined by the sample rate and the bit structure of the data being recorded on the disk. As the sample rate increases, i.e., from 48 Khz to 96 Khz to 192 Khz, the space required on a hard disk, magnetic tape, or optical media is doubled each time. This factor slows down the acquisition of this data by conventional means. The same increase in disk space occurs if the bit structure of the data increases, i.e., from 8 bit to 16 bit to 32 bit words.
The present invention generally comprises a process for arranging a plurality of signals, including data tracks, audio tracks, or video tracks in composite data frames, each data frame containing a temporal segment of each data track, audio or video track. The composite data frames may be recorded to any recording medium, such as magnetic disk drives, optical disks, DVD, CD-ROM, WORM drives, RAM, FLASH memory, any memory that permits random access, any memory that permits random access and is rewritable and/or usable as the main memory of a processor, ROM and magnetic tape, or the like.
For the purposes of this invention the following memory can be used: random access memory (RAM)xe2x80x94SRAM, DRAM, etc., FLASH memory and any memory that permits random access and any memory that permits random access and is rewritable and/or usable as the main memory of a processor. In all descriptions herein, all references to xe2x80x9cRAMxe2x80x9d shall include any of the types of memory just described. In addition to the types of memory described above, a read only memory (ROM) can also be used for storing assembled composite data frames. In the case of ROMs the memory contents are the composite data frames, and these frames would be one time configured in the ROMs.
In one embodiment, the invention relates to recording and playing back audio, video, or data tracks simultaneously from a disk drive, whereby the number of audio tracks that can be played simultaneously directly from the disk drive is increased far beyond the capability of state of the art devices. For purposes of this discussion a xe2x80x9cdisk drivexe2x80x9d or xe2x80x9cdata drivexe2x80x9d refers to any type of disk drive capable of playing back audio or video or any data. This includes all hard disk drives, optical drives (both WORM and erasable), removable disk drives, compact disk (CD), digital video disk (DVD), other read only optical drives, floppy drives and the like. Hereinafter, any reference to audio tracks, data tracks or video tracks will be presumed to include any and all audio signals, data signals, or video signals, whether or not they are specifically configured as tracks, and any reference to one is intended to encompass all.
Initially, a plurality of audio tracks are recorded on a disk drive, using technology known in the prior art, the audio tracks being recorded in digitized format in available portions of the disk drive. Thereafter, in order to maximize the number of audio tracks that can be played back simultaneously, the recorded audio data is re-ordered, as follows. Incremental temporal segments of each recorded audio track are read from the disk and assembled into a composite data frame in RAM, and the frame is recorded back onto a disk drive. Thus, for example, the first 100 ms of each audio track comprises the first incremental temporal segments, and all of these segments are recorded in a defined order in the first composite data frame. The second frame consists of the second 100 ms segments of the same audio tracks, which are recorded in the same order as in the first frame. This process is reiterated until the entire lengths of all of the audio tracks are re-ordered and recorded in such frames on the disk drive. Reiteration may be carried out R times, where R may vary from zero to any positive integer. The frames are placed on the disk in contiguous order, to the greatest extent possible, to minimize the seek time of the disk drive read/write heads. But because of physical writing limitations of disk drive architectures and/or requirements of disk drive operating systems, these frames may not always be capable of being written in contiguous order. Within the constraints of any given operating system, the disk can be partitioned to improve the probability of contiguous allocation of space for composite data frames.
In an alternative embodiment of the invention, each composite data frame is constructed of sub-sections, each sub-section comprising portions of the audio tracks that are held in RAM. After the audio tracks are recorded in original format on a disk drive, incremental temporal segments of each recorded audio track are read from the disk and stored in RAM, as in the previous embodiment. However, in the alternative embodiment, a plurality of sub-sections are formed from the RAM data, all of the sub-sections comprising one composite data frame. Each sub-section is comprised of incremental time slices of all of the audio tracks, arranged in a predetermined order. For example, given that 100 ms segments of all tracks are stored in RAM, each sub-section may comprise 10 ms incremental time slices of all tracks, and 10 sub-sections are required to construct one composite data frame that fully represents all of the audio track data stored in RAM. Thereafter, the sub-sections are recorded on a disk drive in substantially contiguous order. The number of sub-sections is equal to any chosen integer, and the incremental time slice period is set to be a fraction equal to initial segment length X divided by the chosen integer N.
Each frame is labeled with a time stamp that encodes the ordered position of the frame among all the composite data frames. The time stamp distinguishes the location of the starting point of each frame or sub-section on the disk drive data tracks. In addition, a registry of all the start times is created and stored in memory, as well as on backup storage media. The disk drive operating program is capable of reading the start time registry and directing the read/write head to the start of any frame, and also to read out the frames in an ordered manner. The disk drive reads each composite frame as a data stream that is loaded into RAM, where it is read out, disassembled, and routed to separate outputs as the plurality of audio tracks that were initially recorded. Initially, the first two frames are loaded into RAM. After the first frame is read out as audio tracks, it is erased while or after the third frame is loaded into RAM, and so on. In this manner the individual audio tracks are reassembled from the track segments that comprise each frame, and playback of all the audio tracks appears to be continuous and simultaneous. However, the amount of RAM required for this process is only a small fraction of the RAM required to read out and store all of the audio tracks in complete form prior to playback, as is required in prior art devices.
The disk drive may be partitioned with differing partitions used to record the composite data frames to protect the composite data frames from being erased during the recording process and to increase the probability of keeping the composite data frames contiguous. In addition, partitioning may be used to protect the original audio data tracks from being overwritten by the composite data frames. Alternatively, the original audio tracks or signals may be sacrificed and overwritten if it is determined that they are no longer required or if they have been backed up on another storage medium. In a further alternative, the composite date frames may be recorded on a disk or disk sector in contiguous relationship as one file, whereby the data frames may be read out consecutively as a single continuous data stream. Such a file would be the equivalent of creating multiple individual composite data frames and storing them on a data source, like a disk drive, DVD, CD, etc. and reading them all as a single file.
In a further embodiment, a plurality of signals (audio tracks, video tracks or data tracks) from any source are acquired from any source, such as, but not limited to, data disk, magnetic tape, any optical media, a computer bus or other data bus, internet data stream, live recording, or the like. As the signals are received, incremental temporal segments of each signal are assembled into composite data frames in a memory, and the composite data frames are recorded by any data recording system or onto any recording medium, such as any magnetic or optical medium, any tape medium or any memory.
As described previously, the composite data frames may also be comprised of sub-sections. The sub-sections and the composite data frames may be recorded in substantially contiguous order, or may be recorded in any desired order, or in a changeable order. To effect playback of the signals, each composite frame is read from the recording system or medium, loaded into a memory, disassembled, and each temporal segment of each track is routed to a respective output. This process is reiterated, so that playback of all the audio or data tracks appears to be continuous and simultaneous. One advantage of this latter embodiment is that from the instant that playback is initiated, all of the tracks stream from the recording device and are available to be played, processed, modified, and/or re-recorded. Another advantage of this embodiment is that it is capable of dealing with tracks (signals) of differing sampling rates and word size (bit structure). For example, incoming signals may include audio, video, and control tracks, all having differing sampling rates and word structure. Inasmuch as each temporal segment of each signal is captured xe2x80x9cas isxe2x80x9d, the signal structure and data rate are preserved when the segments are reassembled for playback. And, playback speed is not noticeably delayed by the seek time of the recording medium, nor limited by the bit structure or sample rate of any audio, video, or data signals.
In another embodiment, a plurality of audio, video, or data signals from any sources are processed as follows: incremental temporal segments of the signals are ordered as composite data frames (as defined previously) as they are read from RAM or other memory media. The composite data frames are then recorded on a data disk, magnetic tape, optical disk, or any other type of recording media. Thus when the signals are previously existing in RAM or the like, it is not necessary to employ a RAM buffer to create the composite data frames for recording purposes. The data can be read as composite data frames directly from the memory and then recorded on whatever medium is desired using any method previously described.